package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.EstadoCivilFacade;
import sv.com.bolsaTrabajo.model.entities.EstadoCivil;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

@ViewScoped
@ManagedBean
public final class EstadoCivilMB extends ManejadorAccion implements Serializable {

    @EJB
    private EstadoCivilFacade estadoCivilFacade;
    private EstadoCivil estadoCivil;
    private List<EstadoCivil> estadoCiviles;

    public EstadoCivilMB() {
        limpiarEsCivil();
        estadoCivil = new EstadoCivil();
    }

    public void limpiarEsCivil() {
        setEstadoCivil(new EstadoCivil());
    }

    public List<EstadoCivil> getEstadoCiviles() {
        estadoCiviles = estadoCivilFacade.obtenerTodos();
        return estadoCiviles;
    }

   public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Estado Civil");
            getEstadoCivil().setFechaMod(new Date());

            if (estadoCivil.getIdEstadoCiv()== null) {
                estadoCivilFacade.crear(estadoCivil);
                lanzarMensajeInformacion("Exito", "Estado Civil guardada correctamente");
            } else {
                estadoCivilFacade.modificar(estadoCivil);
                lanzarMensajeInformacion("Exito", "Estado Civil modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmEstadoCivil");
            RequestContext.getCurrentInstance().execute("WVDialogEstadoCivil.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Estado Civil ", e);
        }
    }

    public void modificarEntidad(EstadoCivil modCivil) {
        try {
            this.estadoCivil = modCivil;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Estado Civil", e);
        }
        RequestContext.getCurrentInstance().update("");
    }
    /**
     * ******************** Getter and Setters ***********************
     */
    public EstadoCivil getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(EstadoCivil estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public EstadoCivilFacade getEstadoCivilFacade() {
        return estadoCivilFacade;
    }

    public void setEstadoCivilFacade(EstadoCivilFacade estadoCivilFacade) {
        this.estadoCivilFacade = estadoCivilFacade;
    }

   
}
